/*
 * @Description: 混入
 * @Author: zheng yiliang
 * @Date: 2021-05-09 20:57:56
 * @LastEditTime: 2021-05-09 20:58:17
 * @LastEditors: zheng yiliang
 */
// 获取页面顶部被卷起来的高度
export function getScrollTop () {
  return Math.max(
    // chrome
    document.body.scrollTop,
    // firefox/IE
    document.documentElement.scrollTop
  )
}
// 获取页面文档的总高度
export function getDocumentHeight () {
  // 现代浏览器（IE9+和其他浏览器）和IE8的document.body.scrollHeight和document.documentElement.scrollHeight都可以
  return Math.max(
    document.body.scrollHeight,
    document.documentElement.scrollHeight
  )
}
// 页面浏览器视口的高度
export function getWindowHeight () {
  return document.compatMode === 'CSS1Compat'
    ? document.documentElement.clientHeight
    : document.body.clientHeight
}

export function scrollEnd () {
  return getScrollTop() + getWindowHeight() > getDocumentHeight() - 10
}

export const scrollMixin = {
  data () {
    return {
      scrollTimer: '',
      loadStatus: '0' // 判断是否加载到底部
    }
  },
  methods: {
    onSroll () {
      if (scrollEnd() && this.loadStatus !== '2') {
        // 节流
        clearTimeout(this.scrollTimer)
        this.scrollTimer = window.setTimeout(() => {
          this.loadMore()
        }, 100)
      }
    }
  },
  created () {
    window.addEventListener('scroll', this.onSroll) // 监听 滚动条事件
  },
  destroyed () {
    window.removeEventListener('scroll', this.onSroll, false) // 销毁滚动条事件
  }
}
